Computer software systems such as word processors, page composition programs and the like are generally configured to render, into device pixels, collections of graphical objects such as bitmap images, photographic images, text, and filled shapes. Rendering systems commonly use a pixel-sequential method of generating pixel output, which involves determining the color of graphical objects between their edges and compositing the colors of the contributing objects for the run of pixels between their edges. In addition, a frame store may be used to hold the entire page or parts thereof, either in the normal course of rendering or as an error-recovery mechanism to be invoked when the pixel-sequential renderer exhausts some resource such as system memory. Some systems do not use pixel-sequential rendering at all and simply use the frame store for all objects, while others are pure pixel-sequential renderers that do not use a frame store at all.
As graphical objects are received the graphical objects are painted onto the page. This may involve simply overwriting memory (“painter's algorithm”) or else involve compositing operations such as transparency, blending and other techniques well known in the art. In these latter cases, the results depend on the current object and also on the destination (background) pixel data. These may be the results of previous rendering steps that have to be fetched from a framestore. Color accuracy is desirably maintained by storing this intermediate data at a sufficiently high bit depth, even if the final output is dithered (halftoned) or otherwise reduced in bit depth to drive a print engine. However, modern printers have high pixel resolutions (e.g. 1200 dpi), which makes the memory usage of a full-page frame store prohibitive (an A4 page at 1200 dpi may require hundreds of megabytes of storage).